--------------------------------------------------------------------------- Disk Manager 5.10 and Windows - (Technical Version) --------------------------------------------------------------------------- NOTE: This level of information is not required by most users, therefore, Ontrack Technical Support will not provide detailed support regarding its contents. Ontrack has incorporated enhancements to version 5.10 of our Disk Manager hard disk installation software, or more specifically our device driver DMDRVR.BIN, to improve compatibility with Microsoft Windows 3.1 permanent swapfiles. In most cases you will now be able to use a permanent swapfile with Windows 386 enhanced mode. The information provided in this document is only relevant to users of 386 and 486 class computers, as it relates to Windows 386 enhanced mode exclusively. Although not effected by changes to DMDRVR.BIN, information on compatibility with Windows 3.1 FastDisk support is also provided. NOTE: The information that follows considers only Windows 3.1 and Disk Manager software 5.10. Permanent swapfiles can not be used if previous versions of either software is used. Also, other elements, such as disk compression software, may also inhibit permanent swapfile creation or FastDisk support. PERMANENT SWAPFILE COMPATIBILITY Historically permanent swapfiles have not been available on systems using DMDRVR.BIN. This is because DMDRVR.BIN allows conditions to exist in your system which Windows does not adjust for when accessing a permanent swapfile. There are three conditions involving DMDRVR.BIN, and the XBIOS.OVL INT13 overlay allow, that can cause incompatibly with permanent swapfiles. These are the same conditions that allow Ontrack partitions to transcend the limitations of DOS partitions. The three conditions are explained in detail below. A system must be configured within Windows limitations for all three of these conditions to be permanent swapfile compatible. NON-HOMOGENEOUS DRIVES A drive is said to be non-homogeneous when the number of heads and sectors-per-track (SPT) are not the same in all partitions. DOS can only access your hard drive using the parameters specified the ROM BIOS drive table entry, referenced by your CMOS drive type. As a result, the number of heads and SPT used in any DOS partitions, including DOS partitions created by Disk Manager software, will match the parameters of the drive type set in CMOS. If there is not an accurate drive table entry available for the drive, there will be a loss of hard drive capacity. For example, if you have a drive that is 1024x12x17 (102MB) but the closest entry in your drive table is 1024x9x17 (76.5MB) you would loose 25.5MB of capacity if only DOS partitions are used. Ontrack WRITE-READ and READ-ONLY partitions are not subject to drive table limitations. The Disk Manager program (DM.EXE) uses the drives actual parameters when creating WRITE-READ and READ-ONLY partitions and writes these parameters to the drive. When DMDRVR.BIN is loaded at boot time, it reads the parameters from the drive and resets the disk subsystem so it can access the entire drive. Taking the scenario above, but allocating only 40 cylinders (3MB) of the drive for a DOS bootable partition (you can not boot from an Ontrack partition) and allocating the remainder of the drive in WRITE-READ partitions, you would loose only 1MB of capacity. While DMDRVR.BIN can transcend the limitations of your computers ROM BIOS and make additional space available, the combination of DOS and WRITE-READ partitions above results in a non-homogeneous drive. This will not normally present any problems for either DOS or Windows. DMDRVR.BIN is attached to DOS as a block device driver. When the drive is accessed from a DOS level, either INT21 or INT25/26, calls are made through DMDRVR.BIN, which adjusts for the non-homogeneous condition. Windows will normally access the drive through DOS and through DMDRVR.BIN, which again can adjust for the for the non-homogeneous condition. For Windows to use a permanent swapfile it must be able to access the disk at the INT13 level, below DOS and DMDRVR.BIN. While this low level access is certainly justifiable, Windows does not gain DMDRVR.BIN's support for non-homogeneous drives when accessing permanent swapfiles. Windows itself does not adjust for this condition so it will not be able to successfully access a permanent swapfile on a non-homogeneous drive. Windows could, however, successfully access a permanent swapfile on a WRITE-READ partition on a homogeneous drive. To prevent problems, when you attempt to create a permanent swapfile Windows or Setup will check the drives in the system to see if there are any partitions type present that could allow the drive to be non-homogeneous. Since WRITE-READ and READ-ONLY partitions allow this condition, a message dialogue is presented indicating that a partitioning scheme on your hard drive does not permit the creation of a permanent swapfile, suggesting that you create a temporary swapfile (which by the way works fine). No attempt is made to determine if the drive is actually non-homogeneous, so permanent swapfiles are unnecessarily prohibited on homogeneous drives. In the interest of allowing permanent swapfiles, enhancements have been made to DMDRVR.BIN to overcome this unnecessary restriction for homogenous drives. Two new Ontrack partition types, WRITE-READ-HOMOGENEOUS and READ-ONLY-HOMOGENEOUS, are now supported. These new partition types are used exclusively on homogenous drives, hence Windows and Setup will allow swapfile creation on WRITE-READ-HOMOGENEOUS partitions. The new DMDRVR.BIN will automatically determine if your drive is homogenous or non-homogeneous. If your drive is homogenous all WRITE-READ and READ-ONLY partitions will be converted to WRITE-READ-HOMOGENEOUS and READ-ONLY-HOMOGENEOUS partitions. If your drive is non-homogeneous Ontrack partitions will remain WRITE-READ and READ-ONLY. If your drive does not have more that 1024 cylinders, DMDRVR.BIN will perform this conversion automatically the first time your system is booted with the new DMDRVR.BIN installed. If your drive is over 1024 cylinders, you will have to manually enable this support (see below). If your drive is non-homogeneous you must eliminate that condition before you will be able to use Windows permanent swapfiles. Depending on your system configuration you may need to perform one of the following. 1) Reconfigure a dual drive System. If you have two different hard drives on an AT compatible controller card, it is possible that one of your drives has a matching head and SPT entry in CMOS, while the other may not. If your second drive can have its head and SPT values represented by a CMOS entry (cylinders are unimportant so long as the actual cylinder count of the drive is not exceeded) you could make your system permanent swapfile compatible by backing up files on both drives and reinstalling your system. Reinstall your hardware making the drive having a homogeneous drive table entry the primary drive (80h) and use only WRITE-READ and READ-ONLY partitions on the secondary drive (81h). After reinstalling, the new DMDRVR.BIN will automatically make your system permanent swapfile compatible, unless you have a drive over 1024 cylinders (see below). 2) Explore BIOS level support options. Check your drive type table for an entry that has the same heads and SPT as your drive. You can view your entire drive table using DM.EXE in manual mode. It is possible that the drive was installed using a less than optimal drive type, reinstalling with an appropriate drive type will allow your system to be made permanent swapfile compatible by the new DMDRVR.BIN. You could also set up a user defined drive type if available. If you have an older AT, with spare ROM sockets, Ontrack has an option ROM (SuperProms) that will provide you with additional drive types to choose from. Reinstalling using a SuperProms drive type with the same heads and SPT as your drive will allow your system to be permanent swapfile compatible by the new DMDRVR.BIN. If you have a controller card with BIOS capable of presenting your drives parameters (most ESDI and RLL controller will do this) use its BIOS routine, accessed through DEBUG to reinstall initialize your drive. If the controller is allowed to initialize the drive it will load the appropriate parameters when your system is booted, this will eliminate the non-homogeneous condition. If you initialize with BIOS, you can still use DM.EXE to partition and prepare the drive, however, you must install the drive with standard parameters and not allow DM.EXE to initialize the drive. 3) Sacrifice space for permanent swapfile compatibility. If you must have a permanent swapfile and can not make your drive homogeneous following the previous suggestions, you can reinstall your drive using only the head and SPT values specified in CMOS. You can use DM.EXE in manual mode to do this, when you select your drive from the drive list choose to edit the parameters and change the heads and or SPT values to match the CMOS parameters. Reinstalling in this fashion will make your system permanent swapfile compatible but will also cause a loss of usable drive capacity. LOGICAL SECTOR SIZES GREATER THAN 512 BYTES NOTE: DOS 4.0, 4.01 and 5.0 (and Compaq 3.31) require that all logical sectors be 512 bytes. If you are using one of these DOS versions, the information provided in this section is not applicable to your configuration. Under DOS 3.30 and previous versions, the number of logical sectors that can exist in one partition is limited, but the logical sector size is not. Since DOS itself will use only 512 byte sectors, the largest a DOS partition can be under these versions is 32MB. In order to support partitions larger than 32MB under these DOS versions, Disk Manager software increases size of the logical sector. The logical sector size used is dependent on partition size. On partitions of up to 32MB all logical sectors will be the default 512 bytes. To exceed 32MB the sector size is increased to 1024 bytes, to exceed 64MB the sector size is increased to 2048 bytes. This progression continues with the largest possible partition of 512MB using an 8192 byte sector. The cluster size in any partition over 16MB will be four times the logical sector size, under 16MB it is 4096 bytes. Since Disk Manger's support for large partitions operates completely with in the rules for DOS 3.30 and previous versions, it does not normally present a problem. All accesses to the drive made through DOS INT21 and INT25/26 are handled correctly by DOS and DMDRVR.BIN and sector size need not be considered. When Windows accesses the drive through DOS, as it generally does, it is not affected by logical sector size. When Windows accesses a permanent swapfile it does so at the INT13 level, below DOS and DMDRVR.BIN. While this low level access is certainly justifiable, Windows does not take into account the possibility that the logical sector size could be larger than 512 bytes. As a result Windows will not be able to successfully access a permanent swapfile on drive with partitions created with greater than 512 byte sectors. Windows could, however, successfully access a permanent swapfile on a WRITE-READ if the sector size in all partition was 512 bytes. To prevent problems, Windows and Setup will check the drives in your system to determine if there are any partitions present that allow larger than 512 byte sectors. Since WRITE-READ and READ-ONLY partitions allow sector sizes larger than 512 bytes, Windows and Setup will not allow a permanent swapfile to be created. The enhancements made to DMDRVR.BIN allow it to make your partitions compatible with Windows permanent swapfiles only if all logical sector sizes on all partitions are 512 bytes. In order to take advantage of the new features described above, you will need to reconfigure your system to make all logical sector sizes 512 bytes. There are two ways that you can accomplish this. 1) Reinstall your system with all partitions 32MB or less. You can continue to use DOS 3.30 or previous version if you backup your files and reinstall your system, with DM.EXE, creating only partitions of 32MB or less. After the system is reinstalled with all 512 byte logical sectors, it will automatically be made permanent swapfile compatible by the new DMDRVR.BIN, unless you have a drive with more than 1024 cylinders (see below). This will be quite a bit of work and drastically limits flexibility when configuring your system. Option number 2 provides for a better solution. 2) Reinstall your system with a newer version of DOS. By far the best way to do this is to backup your files and reinstall your system, using DM.EXE, under DOS 5.0. Any version of DOS later than 4.0 (and Compaq 3.31) will use only 512 byte sectors regardless of partition size, however, the Windows 3.1 is optimized for DOS 5.0 making it the version of choice. After the system is reinstalled with DOS 4.0 or later, it will automatically be made permanent swapfile compatible, unless you have a drive over 1024 cylinders (see below). DRIVES WITH MORE THAN 1024 CYLINDERS Many drives may be homogeneous and use 512 byte sectors, but have more than 1024 cylinders. Although permanent swapfiles can be used on homogeneous drives with over 1024 cylinders, the new DMDRVR.BIN will not automatically convert partitions on these drives. This is because Windows accesses a permanent swapfile at a level below both DOS and DMDRVR.BIN, and can not access more than 1024 cylinders. As a result the permanent swapfile will not be usable unless it resides entirely within the first 1024 cylinders of the drive. You must keep this limitation in mind when creating your permanent swapfile. To enable DMDRVR.BIN to convert partitions on drives with more than 1024 cylinders, you need to add a /P (enable Partition conversion) switch to the DMDRVR device statement. If the drive is homogeneous, any WRITE-READ and READ-ONLY partitions will be changed to WRITE-READ-HOMOGENEOUS and READ-ONLY-HOMOGENEOUS partitions for permanent swapfile compatibility. If the drive is non-homogeneous Ontrack partitions will remain WRITE-READ and READ-ONLY. The modified device statement should appear as below. DEVICE=C:\DMDRVR.BIN /P During permanent swapfile creation Windows and Setup access the drive through DOS. As a result, it is possible to create a permanent swapfile that is not within the first 1024 cylinders of the drive. When Windows is restarted, after the such a swapfile is created, it will present an error message indicating that the swapfile is corrupt. This results from Windows inability to access it correctly beyond 1024 cylinders. Windows will continue to load using a temporary swapfile, no data corruption will result. If you receive a corrupt swapfile message when starting Windows, after creating a swapfile on a drive with more than 1024 cylinders, don't panic and call Microsoft. The problem is most likely that all or part of the swapfile is located above 1024 cylinders. You should try the following steps to eliminate this condition. 1) Create the permanent swapfile on a DOS partition. Since the DOS partition itself must reside entirely within the first 1024 cylinders, the swapfile will too. This is the surest way to eliminate a corrupt swapfile error. You may need to optimize a partition to get enough contiguous free space to create a permanent swapfile of the size you desire. 2) Create the permanent swapfile on a WRITE-READ-HOMOGENEOUS partition below 1024 cylinders. If your DOS partition(s) are too small, or are filled with files, and you have a WRITE-READ-HOMOGENEOUS partition that resides within the first 1024 cylinders will also make an excellent host for a permanent swapfile. Since the partition resides below 1024 cylinders, the swapfile will too. You can get the ending cylinders for your partitions by running DM.EXE in manual mode and displaying the partition table. You may need to optimize a partition to get enough contiguous free space to create a permanent swapfile of the size you desire. 3) Create the permanent swapfile on a WRITE-READ-HOMOGENEOUS partition that crosses the 1024th cylinder. This should only be considered if you do not have a partition within the first 1024 cylinders that is large enough to host the permanent swapfile. If you have a partition large enough with the first 1024 cylinders, copy files out of it and into one that crosses or exceeds 1024th cylinder and create the swapfile there. Creating a permanent swapfile on a partition that crosses the 1024th cylinder is very likely to cause a corrupt swapfile error. If you don't have a partition within the first 1024 cylinders, you may find it much less frustrating to backup the drive and repartition it, allocating sufficient space in a DOS partition (or WRITE-READ-HOMOGENEOUS under 1024) to host the permanent swapfile. This is a lot of work, but worth the effort, particularly if you decide to change the size of your swapfile. If you are intent on creating a permanent swapfile on a WRITE-READ-HOMOGENEOUS partition that crosses the 1024 cylinder boundary, you will need to free sufficient contiguous space within the first 1024 cylinders. If your drive is relatively empty it may not be hard to allocate a permanent swapfile. Remember that the swapfile must be contiguous, you will want to allow plenty of padding to your swapfile size as you may not be able to enlarge it later. If your drive is full you may need to back off and delete a good deal of files, then optimize the drive to get enough contiguous space within the first 1024 cylinders. COMPATIBILITY WITH WINDOWS 3.1 FASTDISK FastDisk refers to a set of device drivers that are an internal part of Windows 3.1. It allows Windows to communicate directly with AT register set compatible, also called WD1003 compatible, disk drive controllers. Most MFM, RLL, IDE and many ESDI controllers fall into this category. SCSI host adapters and ESDI adapters with translations schemes that exceed 16 heads are not supported by FastDisk at this time. FastDisk support is not required to run Windows 3.1, in fact it is not even enabled by default. Refer to your Windows documentation for more information on what FastDisk is and how to it can be enabled if your hardware supports it. Since FastDisk communicates directly with the registers on the controller, it bypasses DMDRVR.BIN and XBIOS.OVL completely. Also since FastDisk uses the same command structures as BIOS INT13 to access a drive, it can not access above 1024 cylinders. If Windows detects that XBIOS is loaded to provide over 1024 cylinder support, it will disable FastDisk. Windows will allow FastDisk to be used with DMDRVR.BIN on drives not over 1024 cylinders, provided the controller itself is FastDisk compatible. ----------------------------------------------------------------------------